home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
clean
/
sun3.lha
/
Sun3
/
deltaIO.abc
< prev
next >
Wrap
Text File
|
1992-08-07
|
8KB
|
515 lines
.comp 800 111111011
.code 222 12 55
.start _nostart_
.endinfo
.implab _cycle_in_spine
.implab _reserve
.implab _type_error
.impdesc _Defer
.implab _defer_code
.implab _hnf
.impdesc _Cons
.impdesc _Tuple
.impdesc _Select
.impdesc _Nil
.implab _driver
.implab e_system_nAP
.implab e_system_sAP
.impdesc e_system_AP
.desc m_deltaIO _hnf _hnf 0 "deltaIO"
.export e_deltaIO_FOpen
.export e_deltaIO_sFOpen
.export e_deltaIO_nFOpen
.desc e_deltaIO_FOpen e_deltaIO_nFOpen e_deltaIO_lFOpen 2 "FOpen"
.o 2 0
e_deltaIO_lFOpen:
repl_args 1 1
.d 2 0
jsr eaFOpen
.o 0 2 f
create
fillF_b 0 0
pop_b 2
.d 1 0
rtn
.n 2 e_deltaIO_FOpen
.o 1 0
e_deltaIO_nFOpen:
push_node _reserve 2
.d 2 0
jsr eaFOpen
.o 0 2 f
getWL 0
fillF_b 0 0
release
pop_b 2
.d 1 0
rtn
.o 2 0
eaFOpen:
|| STRING
push_a 1
jsr_eval
pop_a 1
|| STRING
jsr_eval
|| STRING
|| STRING
.o 2 0
e_deltaIO_sFOpen:
.o 2 0
sFOpen.1:
|| Match code for alternative 1, stacksizes A: 2 B: 0
|| Building the contractum, Stacksizes A: 2 B: 0
.inline FOpen
openF 0 1
pop_a 2
.end
.d 0 2 f
rtn
.export e_deltaIO_FReOpen
.export e_deltaIO_sFReOpen
.export e_deltaIO_nFReOpen
.desc e_deltaIO_FReOpen e_deltaIO_nFReOpen e_deltaIO_lFReOpen 1 "FReOpen"
.o 2 0
e_deltaIO_lFReOpen:
pop_a 1
.d 1 0
jsr eaFReOpen
.o 0 2 f
create
fillF_b 0 0
pop_b 2
.d 1 0
rtn
.n 1 e_deltaIO_FReOpen
.o 1 0
e_deltaIO_nFReOpen:
push_node _reserve 1
.d 1 0
jsr eaFReOpen
.o 0 2 f
getWL 0
fillF_b 0 0
release
pop_b 2
.d 1 0
rtn
.o 1 0
eaFReOpen:
|| FILE
jsr_eval
|| FILE
pushF_a 0
pop_a 1
.o 0 2 f
e_deltaIO_sFReOpen:
.o 0 2 f
sFReOpen.1:
|| Match code for alternative 1, stacksizes A: 0 B: 2
|| Building the contractum, Stacksizes A: 0 B: 2
.inline FReOpen
reopenF
.end
.d 0 2 f
rtn
.export e_deltaIO_FGetC
.export e_deltaIO_sFGetC
.export e_deltaIO_nFGetC
.desc e_deltaIO_FGetC e_deltaIO_nFGetC e_deltaIO_lFGetC 1 "FGetC"
.o 2 0
e_deltaIO_lFGetC:
pop_a 1
.d 1 0
jsr eaFGetC
.o 0 3 c f
create
create
fillF_b 1 0
create
fillC_b 0 0
fill _Tuple 2 _hnf 2
pop_b 3
.d 1 0
rtn
.n 1 e_deltaIO_FGetC
.o 1 0
e_deltaIO_nFGetC:
push_node _reserve 1
.d 1 0
jsr eaFGetC
.o 0 3 c f
create
fillF_b 1 0
create
fillC_b 0 0
getWL 2
fill _Tuple 2 _hnf 2
release
pop_b 3
.d 1 0
rtn
.o 1 0
eaFGetC:
|| FILE
jsr_eval
|| FILE
pushF_a 0
pop_a 1
.o 0 2 f
e_deltaIO_sFGetC:
.o 0 2 f
sFGetC.1:
|| Match code for alternative 1, stacksizes A: 0 B: 2
|| Building the contractum, Stacksizes A: 0 B: 2
.inline FGetC
getFC
.end
.d 0 3 c f
rtn
.export e_deltaIO_FGetS
.export e_deltaIO_sFGetS
.export e_deltaIO_nFGetS
.desc e_deltaIO_FGetS e_deltaIO_nFGetS e_deltaIO_lFGetS 1 "FGetS"
.o 2 0
e_deltaIO_lFGetS:
pop_a 1
.d 1 0
jsr eaFGetS
.o 1 2 f
create
create
fillF_b 0 0
push_a 2
fill _Tuple 2 _hnf 2
update_a 0 1
pop_a 1
pop_b 2
.d 1 0
rtn
.n 1 e_deltaIO_FGetS
.o 1 0
e_deltaIO_nFGetS:
push_node _reserve 1
.d 1 0
jsr eaFGetS
.o 1 2 f
create
fillF_b 0 0
push_a 1
getWL 3
fill _Tuple 2 _hnf 3
release
pop_a 1
pop_b 2
.d 1 0
rtn
.o 1 0
eaFGetS:
|| FILE
jsr_eval
|| FILE
pushF_a 0
pop_a 1
.o 0 2 f
e_deltaIO_sFGetS:
.o 0 2 f
sFGetS.1:
|| Match code for alternative 1, stacksizes A: 0 B: 2
|| Building the contractum, Stacksizes A: 0 B: 2
.inline FGetS
pushI 80
create
getFS 0
.end
.d 1 2 f
rtn
.export e_deltaIO_IsEndOfFile
.export e_deltaIO_sIsEndOfFile
.export e_deltaIO_nIsEndOfFile
.desc e_deltaIO_IsEndOfFile e_deltaIO_nIsEndOfFile e_deltaIO_lIsEndOfFile 1 "IsEndOfFile"
.o 2 0
e_deltaIO_lIsEndOfFile:
pop_a 1
.d 1 0
jsr eaIsEndOfFile
.o 0 1 b
create
fillB_b 0 0
pop_b 1
.d 1 0
rtn
.n 1 e_deltaIO_IsEndOfFile
.o 1 0
e_deltaIO_nIsEndOfFile:
push_node _reserve 1
.d 1 0
jsr eaIsEndOfFile
.o 0 1 b
getWL 0
fillB_b 0 0
release
pop_b 1
.d 1 0
rtn
.o 1 0
eaIsEndOfFile:
|| FILE
jsr_eval
|| FILE
pushF_a 0
pop_a 1
.o 0 2 f
e_deltaIO_sIsEndOfFile:
.o 0 2 f
sIsEndOfFile.1:
|| Match code for alternative 1, stacksizes A: 0 B: 2
|| Building the contractum, Stacksizes A: 0 B: 2
.inline IsEndOfFile
endF
.end
.d 0 1 b
rtn
.export e_deltaIO_FPutC
.export e_deltaIO_sFPutC
.export e_deltaIO_nFPutC
.desc e_deltaIO_FPutC e_deltaIO_nFPutC e_deltaIO_lFPutC 2 "FPutC"
.o 2 0
e_deltaIO_lFPutC:
repl_args 1 1
.d 2 0
jsr eaFPutC
.o 0 2 f
create
fillF_b 0 0
pop_b 2
.d 1 0
rtn
.n 2 e_deltaIO_FPutC
.o 1 0
e_deltaIO_nFPutC:
push_node _reserve 2
.d 2 0
jsr eaFPutC
.o 0 2 f
getWL 0
fillF_b 0 0
release
pop_b 2
.d 1 0
rtn
.o 2 0
eaFPutC:
|| FILE
push_a 1
jsr_eval
pop_a 1
|| CHAR
jsr_eval
|| FILE
pushF_a 1
|| CHAR
pushC_a 0
pop_a 2
.o 0 3 c f
e_deltaIO_sFPutC:
.o 0 3 c f
sFPutC.1:
|| Match code for alternative 1, stacksizes A: 0 B: 3
|| Building the contractum, Stacksizes A: 0 B: 3
.inline FPutC
putFC
.end
.d 0 2 f
rtn
.export e_deltaIO_FPutS
.export e_deltaIO_sFPutS
.export e_deltaIO_nFPutS
.desc e_deltaIO_FPutS e_deltaIO_nFPutS e_deltaIO_lFPutS 2 "FPutS"
.o 2 0
e_deltaIO_lFPutS:
repl_args 1 1
.d 2 0
jsr eaFPutS
.o 0 2 f
create
fillF_b 0 0
pop_b 2
.d 1 0
rtn
.n 2 e_deltaIO_FPutS
.o 1 0
e_deltaIO_nFPutS:
push_node _reserve 2
.d 2 0
jsr eaFPutS
.o 0 2 f
getWL 0
fillF_b 0 0
release
pop_b 2
.d 1 0
rtn
.o 2 0
eaFPutS:
|| FILE
push_a 1
jsr_eval
pop_a 1
|| STRING
jsr_eval
|| FILE
pushF_a 1
|| STRING
update_a 0 1
pop_a 1
.o 1 2 f
e_deltaIO_sFPutS:
.o 1 2 f
sFPutS.1:
|| Match code for alternative 1, stacksizes A: 1 B: 2
|| Building the contractum, Stacksizes A: 1 B: 2
.inline FPutS
putFS 0
pop_a 1
.end
.d 0 2 f
rtn
.export e_deltaIO_StdIn
.export e_deltaIO_sStdIn
.export e_deltaIO_nStdIn
.desc e_deltaIO_StdIn e_deltaIO_nStdIn e_deltaIO_lStdIn 0 "StdIn"
.o 1 0
e_deltaIO_lStdIn:
halt
.n 0 e_deltaIO_StdIn
.o 1 0
e_deltaIO_nStdIn:
push_node _reserve 0
.d 0 0
jsr eaStdIn
.o 0 2 f
getWL 0
fillF_b 0 0
release
pop_b 2
.d 1 0
rtn
.o 0 0
e_deltaIO_sStdIn:
.o 0 0
eaStdIn:
.o 0 0
sStdIn.1:
|| Match code for alternative 1, stacksizes A: 0 B: 0
|| Building the contractum, Stacksizes A: 0 B: 0
.inline StdIn
pushI 0
pushI 0
.end
.d 0 2 f
rtn
.export e_deltaIO_StdOut
.export e_deltaIO_sStdOut
.export e_deltaIO_nStdOut
.desc e_deltaIO_StdOut e_deltaIO_nStdOut e_deltaIO_lStdOut 0 "StdOut"
.o 1 0
e_deltaIO_lStdOut:
halt
.n 0 e_deltaIO_StdOut
.o 1 0
e_deltaIO_nStdOut:
push_node _reserve 0
.d 0 0
jsr eaStdOut
.o 0 2 f
getWL 0
fillF_b 0 0
release
pop_b 2
.d 1 0
rtn
.o 0 0
e_deltaIO_sStdOut:
.o 0 0
eaStdOut:
.o 0 0
sStdOut.1:
|| Match code for alternative 1, stacksizes A: 0 B: 0
|| Building the contractum, Stacksizes A: 0 B: 0
.inline StdOut
pushI 0
pushI 1
.end
.d 0 2 f
rtn
.export e_deltaIO_StdIO
.export e_deltaIO_sStdIO
.export e_deltaIO_nStdIO
.desc e_deltaIO_StdIO e_deltaIO_nStdIO e_deltaIO_lStdIO 0 "StdIO"
.o 1 0
e_deltaIO_lStdIO:
halt
.n 0 e_deltaIO_StdIO
.o 1 0
e_deltaIO_nStdIO:
push_node _reserve 0
.d 0 0
jsr eaStdIO
.o 0 2 f
getWL 0
fillF_b 0 0
release
pop_b 2
.d 1 0
rtn
.o 0 0
e_deltaIO_sStdIO:
.o 0 0
eaStdIO:
.o 0 0
sStdIO.1:
|| Match code for alternative 1, stacksizes A: 0 B: 0
|| Building the contractum, Stacksizes A: 0 B: 0
.inline StdIO
pushI 0
pushI 2
.end
.d 0 2 f
rtn
.export e_deltaIO_StdErr
.export e_deltaIO_sStdErr
.export e_deltaIO_nStdErr
.desc e_deltaIO_StdErr e_deltaIO_nStdErr e_deltaIO_lStdErr 0 "StdErr"
.o 1 0
e_deltaIO_lStdErr:
halt
.n 0 e_deltaIO_StdErr
.o 1 0
e_deltaIO_nStdErr:
push_node _reserve 0
.d 0 0
jsr eaStdErr
.o 0 2 f
getWL 0
fillF_b 0 0
release
pop_b 2
.d 1 0
rtn
.o 0 0
e_deltaIO_sStdErr:
.o 0 0
eaStdErr:
.o 0 0
sStdErr.1:
|| Match code for alternative 1, stacksizes A: 0 B: 0
|| Building the contractum, Stacksizes A: 0 B: 0
.inline StdErr
pushI 0
pushI 3
.end
.d 0 2 f
rtn